package com.shensi.adminCollect.mapper.station;

import com.shensi.adminCollect.domain.station.PayWay;
import com.shensi.adminCollect.domain.station.dto.AutoPayWayDto;
import com.shensi.adminCollect.domain.station.dto.AutoPayWayInfo;
import com.shensi.adminCollect.domain.station.dto.RateSettingDto;
import com.shensi.adminCollect.domain.station.form.PayWayForm;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 支付方式信息Mapper接口
 * 
 * @author qujia
 * @date 2021-10-24
 */
@Repository
public interface PayWayMapper
{
    /**
     * 查询支付方式信息
     * 
     * @param payWayId 支付方式信息
     * @return 油罐信息
     */
    public PayWay selectPayWayById(Long payWayId);
    /**
     * 查询支付方式信息
     *
     * @param payWayId 支付方式信息
     * @return 油罐信息
     */
    public AutoPayWayDto selectAutoPayWayById(Long Id);

    public List<PayWay> selectPayWayByIds(Long[] payWayIds);

    /**
     * 查询支付方式信息列表
     * 
     * @param payWay 支付方式信息
     * @return 支付方式信息集合
     */
    public List<PayWay> selectPayWayList(PayWay payWay);

    public PayWay selectPayWayListSingle(PayWay payWay);

    public List<PayWay> selectAutoPayWayList(PayWay payWay);

    /**
     * 新增支付方式信息
     *
     * @param payWay 支付方式信息
     * @return 结果
     */
    public int insertPayWay(PayWay payWay);

    /**
     * 修改支付方式信息
     *
     * @param payWay 支付方式信息
     * @return 结果
     */
    public int updatePayWay(PayWay payWay);

    /**
     * 删除支付信息信息
     * 
     * @param payWayId 支付信息ID
     * @return 结果
     */
    public int deletePayWayById(Long payWayId);


    public List<AutoPayWayDto> autoPayWayList(AutoPayWayDto autoPayWayDto);


    public long insertAutoPayWay(AutoPayWayDto autoPayWayDto);

    public long updateAutoPayWay(AutoPayWayDto autoPayWayDto);

    public long updateAutoPayWayInfo(AutoPayWayInfo autoPayWayInfo);

    public long insertAutoPayWayInfo(AutoPayWayInfo autoPayWayInfo);

    public long deleteAutoPayWay(Long id);

    public  List<AutoPayWayInfo> getAutoPayWayInfo(Long id);

    public  int setMnoAllRate(RateSettingDto rateSettingDto);

    public  RateSettingDto selectMnoAllRate(String mno);

    public   List<RateSettingDto> selectMnoAllRateList();

    public   int updatePayWayWxpos(@Param("serviceCharge") BigDecimal serviceCharge, @Param("mno") String mno);

    public   int updatePayWayZfb(@Param("serviceCharge") BigDecimal serviceCharge, @Param("mno") String mno);

    public   int updatePayWayYhk(@Param("serviceCharge") BigDecimal serviceCharge, @Param("mno") String mno);

    public   int updateMnoAllRateList(String mno);


    public  int deleteMnoAllRate(String mno);

    public  List<PayWay> getMnoByEnterpriseId(Long id);

    public  AutoPayWayInfo getOneAutoPayWayInfo(Long id);

    public  List<AutoPayWayInfo> selectAutoPayWayInfo(Map<String,Object> params);

    public  List<Map<String,Object>> selectAutoPayWay(Map<String,Object> params);

    public  AutoPayWayInfo getRunCountAutoPayWayInfo(Map<String,Object> params);

    public  AutoPayWayInfo getCountAutoPayWayInfo(Map<String,Object> params);

    public  Map<String, Object> getOrderCount(Map<String,Object> params);

    public Set<Long> selectAutoPayWayStationId(Map<String,Object> params);


    public  Long[]  getAutoPayWayOver(Long id);


    public long deleteAutoPayWayInfo(Long autoPayWayId);


    /**
     * 批量删除支付配置信息
     * 
     * @param payWayIds 需要删除的数据ID
     * @return 结果
     */
    public int deletePayWayByIds(Long[] payWayIds);

    PayWayForm getOneStationPayWay(PayWayForm payWayForm);
}
